package com.cmc.cloud.cmclink.doc.vo.special.dgcommodityvo;

import java.math.BigDecimal;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 危险品品名库 Base VO，提供给添加、修改、详细的子 VO 使用 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 * 
 * @author codegen
 */
@Data
public class DgCommodityBaseVO {

    @Schema(description = "版本号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{dgcommodity.versionno.notnull}")
    @Length(max = 20, message = "{dgcommodity.versionNo.max.length}")
    private String versionNo;

    @Schema(description = "危险货物编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{dgcommodity.unno.notnull}")
    @Length(max = 4, message = "{dgcommodity.unno.max.length}")
    private String unNo;

    @Schema(description = "seq", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "{dgcommodity.unno.notnull}")
    private Integer seq;

    @Schema(description = "正式运输名称")
    @Length(max = 256, message = "{dgcommodity.psn.max.length}")
    private String psn;

    @Schema(description = "危险品类别", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{dgcommodity.imoclass.notnull}")
    @Length(max = 4, message = "{dgcommodity.imoclass.max.length}")
    private String imoClass;

    @Schema(description = "cmpt_group")
    @Length(max = 50, message = "{dgcommodity.cmptgroup.max.length}")
    private String cmptGroup;

    @Schema(description = "副风险")
    @Length(max = 50, message = "{dgcommodity.subsidiaryrisk.max.length}")
    private String subsidiaryRisk;

    @Schema(description = "积载类别")
    @Length(max = 50, message = "{dgcommodity.stowagecategory.max.length}")
    private String stowageCategory;

    @Schema(description = "ext_imdg")
    @Length(max = 50, message = "{dgcommodity.extimdg.max.length}")
    private String extImdg;

    @Schema(description = "隔离组")
    @Length(max = 50, message = "{dgcommodity.segregationgroup.max.length}")
    private String segregationGroup;

    @Schema(description = "segregation_table")
    @Length(max = 50, message = "{dgcommodity.segregationtable.max.length}")
    private String segregationTable;

    @Schema(description = "segregation_table2")
    @Length(max = 50, message = "{dgcommodity.versionNo.segregationtable2.length}")
    private String segregationTable2;

    @Schema(description = "特殊规定")
    @Length(max = 50, message = "{dgcommodity.specialprov.max.length}")
    private String specialProv;

    @Schema(description = "包装类别", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{dgcommodity.packinggroup.notnull}")
    @Length(max = 50, message = "{dgcommodity.packinggroup.max.length}")
    private String packingGroup;

    @Schema(description = "mp")
    @Length(max = 50, message = "{dgcommodity.mp.max.length}")
    private String mp;

    @Schema(description = "clear_living")
    @Length(max = 50, message = "{dgcommodity.mp.max.length}")
    private String clearLiving;

    @Schema(description = "foodstuffs")
    @Length(max = 50, message = "{dgcommodity.foodstuffs.max.length}")
    private String foodstuffs;

    @Schema(description = "heat_source")
    @Length(max = 50, message = "{dgcommodity.heatsource.max.length}")
    private String heatSource;

    @Schema(description = "shade_radient")
    @Length(max = 50, message = "{dgcommodity.shaderadient.max.length}")
    private String shadeRadient;

    @Schema(description = "闪点")
    private BigDecimal flashPoint;

    @Schema(description = "积载类别")
    @Length(max = 50, message = "{dgcommodity.stowagesegregation.max.length}")
    private String stowageSegregation;

    @Schema(description = "数量限制")
    @Length(max = 50, message = "{dgcommodity.limitedqty.max.length}")
    private String limitedQty;

    @Schema(description = "pack_instr")
    @Length(max = 50, message = "{dgcommodity.packinstr.max.length}")
    private String packInstr;

    @Schema(description = "pack_prov")
    @Length(max = 50, message = "{dgcommodity.packprov.max.length}")
    private String packProv;

    @Schema(description = "ibc_instr")
    @Length(max = 50, message = "{dgcommodity.ibcinstr.max.length}")
    private String ibcInstr;

    @Schema(description = "ibc_prov")
    @Length(max = 50, message = "{dgcommodity.ibcprov.max.length}")
    private String ibcProv;

    @Schema(description = "tank_imo")
    @Length(max = 50, message = "{dgcommodity.tankimo.max.length}")
    private String tankImo;

    @Schema(description = "tank_un")
    @Length(max = 50, message = "{dgcommodity.tankun.max.length}")
    private String tankUn;

    @Schema(description = "tank_prov")
    @Length(max = 50, message = "{dgcommodity.tankprov.max.length}")
    private String tankProv;

    @Schema(description = "应急反应措施编号")
    @Length(max = 50, message = "{dgcommodity.ems.max.length}")
    private String ems;

    @Schema(description = "not_mix_class1")
    @Length(max = 50, message = "{dgcommodity.notmixclass1.max.length}")
    private String notMixClass1;

    @Schema(description = "cargo_type", example = "2")
    @Length(max = 50, message = "{dgcommodity.cargotype.max.length}")
    private String cargoType;

    @Schema(description = "fp_group")
    @Length(max = 50, message = "{dgcommodity.fpgroup.max.length}")
    private String fpGroup;

    @Schema(description = "stowage_handling")
    @Length(max = 50, message = "{dgcommodity.stowagehandling.max.length}")
    private String stowageHandling;

    @Schema(description = "segregation")
    @Length(max = 100, message = "{dgcommodity.segregation.max.length}")
    private String segregation;

    @Schema(description = "nos")
    @Length(max = 50, message = "{dgcommodity.nos.max.length}")
    private String nos;

    @Schema(description = "business_id", example = "31833")
    @Length(max = 50, message = "{dgcommodity.businessid.max.length}")
    private String businessId;

    @Schema(description = "business_id1")
    @Length(max = 50, message = "{dgcommodity.businessid1.max.length}")
    private String businessId1;

    @Schema(description = "备注", example = "随便")
    @Length(max = 200, message = "{dgcommodity.remark.max.length}")
    private String remark;

}
